'use strict';
var _ = require('lodash');
////////////////////////////////////////////////////////
// 服务
// provider 供应者; 提供者; 供养人;
// 注册一些基础的用处广泛的服务
////////////////////////////////////////////////////////
var providersModule = angular.module('wabgApp.provider', []);
(function(){
    var arr = [];
    arr.push(require('./globel.service'));
    arr.push(require('./mock.service'));
    //////////////////////////
    arr = _.flattenDeep(arr);
    for(var i = 0, l = arr.length; i < l; i++){
        var name = arr[i].name;
        providersModule.provider(name, arr[i]);
    }
})();
////////////////////////////////////////////////////////
// 服务
// factory 工厂; 制造厂;
// 注册一些封装服务类
////////////////////////////////////////////////////////
var factorysModule = angular.module('wabgApp.factory', []);
(function(){
    var arr = [];
    arr.push(require('./alert.service'));
    arr.push(require('./ajax.service'));
    arr.push(require('./rule.service'));
    arr.push(require('./power.service'));
    arr.push(require('./modalPlus.service'));
    arr.push(require('./notify.service'));
    arr.push(require('./go.service'));
    arr.push(require('./fileup.service'));
    arr.push(require('./throttleSubmit.service'));
    //////////////////////////
    arr = _.flattenDeep(arr);
    for(var i = 0, l = arr.length; i < l; i++){
        var name = arr[i].name;
        factorysModule.factory(name, arr[i]);
    }
})();
////////////////////////////////////////////////////////
// 服务
// service 公共服务系统; 公共事业; 公共事业机构(或公司); 服务性企业(或行业、业务);
// 注册一些面向控制器的服务
////////////////////////////////////////////////////////
var servicesModule = angular.module('wabgApp.services', []);
(function(){
    var arr = [];
    arr.push(require('./system.service'));
    arr.push(require('./cacheCtrl.service'));
    arr.push(require('./table14.service'));
    arr.push(require('./api.service'));
    //////////////////////////
    arr = _.flattenDeep(arr);
    for(var i = 0, l = arr.length; i < l; i++){
        var name = arr[i].name;
        servicesModule.service(name, arr[i]);
    }
})();
////////////////////////////////////////////////////////
exports = module.exports = {
    provider: { default: providersModule.name },
    factory: { default: factorysModule.name },
    service: { default: servicesModule.name }
};